home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 316 / libsrc / ldexp.c < prev    next >
Encoding:
Text File  |  1988-10-20  |  508 b   |  31 lines

  1.  
  2. /* more kludgery
  3.  
  4. ldexp(value, exp) apparently returns value * 2 ^ exp.
  5.  
  6. there's some wierdness that happens for overflows or underflows,
  7. but I'm not dealing with that now.
  8. */
  9.  
  10. double ldexp(value, exp)
  11. double value;
  12. int exp;
  13. {
  14.   long factor = 1;
  15.  
  16.   if (exp == 0) return(value);
  17.   if (exp > 0)
  18.     {
  19.     for ( ; exp > 0 ; exp--)
  20.         factor = factor * 2;
  21.     return(value * factor);
  22.     }
  23.     else
  24.     {
  25.     exp = -exp;
  26.     for ( ; exp > 0 ; exp--)
  27.         factor = factor * 2;
  28.     return(value / factor);
  29.     }
  30. }
  31.